package com.qingzhou.web.service.impl.params.vo.excel;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.fastjson2.annotation.JSONField;
import com.qingzhou.web.repository.entity.ImgTestInfo;
import com.qingzhou.web.service.impl.convert.DictConverter;
import com.qingzhou.web.service.impl.convert.DictParent;
import com.qingzhou.web.service.impl.convert.TestItemConverter;
import com.qingzhou.web.service.impl.convert.UserConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class ImagingExcelVo {
    @ExcelProperty(value = "录入序号")
    private Integer serialNo;
    @ExcelProperty(value = "状态", converter = DictConverter.class)
    private String status;
    @ExcelProperty(value = "医院Site", converter = DictConverter.class)
    @DictParent("hospital_site_dict")
    private String hospitalSite;
    @ExcelProperty("患者姓名")
    private String patientName;
    @ExcelProperty(value = "患者编号")
    private String patientCode;
    @ExcelProperty(value = "所属队列", converter = DictConverter.class)
    @DictParent("belong_queue_dict")
    private String belongQueue;
    @ExcelProperty(value = "检测项目", converter = TestItemConverter.class)
    private String testItem;

    @ExcelProperty(value = {"影像检测信息", "影像号"})
    private String imgNum;

    @ExcelProperty(value = {"影像检测信息", "检查日期"})
    @DateTimeFormat("yyyy年MM月dd日")
    private Date testDate;

    @ExcelProperty(value = {"影像检测信息", "检查时间"}, converter = DictConverter.class)
    @DictParent("image_test_time_dict")
    private String testTime;

    @ExcelProperty(value = {"影像检测信息", "方式"}, converter = DictConverter.class)
    @DictParent("img_test_type_dict")
    private String testType;

    @ExcelProperty(value = {"影像检测信息","其他时的方式"}, converter = DictConverter.class)
    @DictParent("other_img_test_type_dict")
    private String otherTestType;

    @ExcelProperty(value = {"影像检测信息", "正常/异常"}, converter = DictConverter.class)
    @DictParent("sys_normal_abnormal")
    private String testResult;

    @ExcelProperty(value = {"影像检测信息", "影像报告描述"})
    private String reportDescribe;

    @ExcelProperty(value = {"影像检测信息", "结论"})
    private String conclusion;

    /*@ExcelProperty(value = {"影像检测信息", "影像疗效评估"})
    private String assess;*/

    @ExcelIgnore
    List<ImgTestInfo> imgTestInfoList;

    @ExcelProperty(value = {"影像报告信息", "病灶位置"})
    private String bzLocation;
    @ExcelProperty(value = {"影像报告信息", "病灶大小"})
    private String bzSize;
    @ExcelProperty(value = {"影像报告信息", "影像学类型"}, converter = DictConverter.class)
    @DictParent("imaging_type_dict")
    private String imagingType;
    @ExcelProperty(value = {"影像报告信息", "分叶征"})
    private String lobulation;
    @ExcelProperty(value = {"影像报告信息", "毛刺征"})
    private String spicule;
    @ExcelProperty(value = {"影像报告信息", "胸膜牵拉征"})
    private String pleuralRetraction;
    @ExcelProperty(value = {"影像报告信息", "血管集束征"})
    private String vascularBundle;
    @ExcelProperty(value = {"影像报告信息", "空泡征"})
    private String cavitation;
    @ExcelProperty(value = {"影像报告信息", "纵膈淋巴结肿大"})
    private String lymphadenopathy;
    @ExcelProperty(value = {"影像报告信息", "肺不张"})
    private String atelectasis;
    @ExcelProperty(value = {"影像报告信息", "胸腔积液"})
    private String effusion;

    // 其他部位影像学报告
    @ExcelProperty(value = {"其他部位影像报告", "其他病灶位置"})
    private String otherLocation;
    @ExcelProperty(value = {"其他部位影像报告", "影像学倾向"})
    private String imagingTendency;

    @ExcelProperty("数据检查原因")
    private String editReason;

    @ExcelProperty("终止原因")
    private String stopReason;

    @ExcelProperty("备注")
    private String remark;

    @ExcelProperty(value="创建人",converter = UserConverter.class)
    private String createBy;

    @ExcelProperty("创建时间")
    private Date createTime;
}
